The complexity, capacity, and intelligence of computer systems is ever evolving. Commonly now a plurality of devices are arranged into a multi-device module that may be implemented within a computer system, rather than as discrete devices. For example, processor modules that comprise multiple processors therein are now available. There are generally several advantages to implementing devices within a multi-device module, as opposed to implementing them as discrete devices. For instance, multi-device modules are typically more scalable and more reliable (e.g., many failures occur at interconnects of discrete components, and if they are integrated on a module, better connections may be achieved). Further, multi-device modules may require less power (e.g., multiple devices can typically share a power module more easily). A multi-device module may enable faster communication between the devices implemented therein, and may enable improved sharing of resources (e.g., in the case of a multi-processor module the processors may share an on-device cache). Serviceability may also be improved because with fewer replaceable components, repairing a system may be simplified.
In some instances, it is desirable to have an action applied for all of the devices of a multi-device module if such action is initiated for any of the devices of the module. That is, it may be desired that if a given action is initiated for a first device of a multi-device module, such action also be applied for all other devices of the multi-device module. For example, several situations may arise in which the Operating System (OS) initiates action to deconfigure a processor. For instance, if the OS suspects there is a problem with a processor (e.g., the OS may be receiving errors reported from/for such processor), the OS may decide to deconfigure that processor. Or, in some instances a system administrator might make the decision to deconfigure a processor if he/she suspects there is a problem with such processor. The hardware may require that if one of the processors of a module is deconfigured, all of the processors of the module are to be deconfigured (or this behavior may be desired from a serviceability standpoint to ensure that all components of a module are deconfigured before servicing, e.g., replacing, the module). For instance, if one processor in a module is bad, it may be desirable to have all of the processors of the module deconfigured so that a service technician can readily replace the entire module.